package com.esyoga.yoyoga.pojo;

import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
public class TEvaluationExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TEvaluationExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andEIdIsNull() {
            addCriterion("e_id is null");
            return (Criteria) this;
        }

        public Criteria andEIdIsNotNull() {
            addCriterion("e_id is not null");
            return (Criteria) this;
        }

        public Criteria andEIdEqualTo(Integer value) {
            addCriterion("e_id =", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotEqualTo(Integer value) {
            addCriterion("e_id <>", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdGreaterThan(Integer value) {
            addCriterion("e_id >", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("e_id >=", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdLessThan(Integer value) {
            addCriterion("e_id <", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdLessThanOrEqualTo(Integer value) {
            addCriterion("e_id <=", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdIn(List<Integer> values) {
            addCriterion("e_id in", values, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotIn(List<Integer> values) {
            addCriterion("e_id not in", values, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdBetween(Integer value1, Integer value2) {
            addCriterion("e_id between", value1, value2, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotBetween(Integer value1, Integer value2) {
            addCriterion("e_id not between", value1, value2, "eId");
            return (Criteria) this;
        }

        public Criteria andEOIdIsNull() {
            addCriterion("e_o_id is null");
            return (Criteria) this;
        }

        public Criteria andEOIdIsNotNull() {
            addCriterion("e_o_id is not null");
            return (Criteria) this;
        }

        public Criteria andEOIdEqualTo(Integer value) {
            addCriterion("e_o_id =", value, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdNotEqualTo(Integer value) {
            addCriterion("e_o_id <>", value, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdGreaterThan(Integer value) {
            addCriterion("e_o_id >", value, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("e_o_id >=", value, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdLessThan(Integer value) {
            addCriterion("e_o_id <", value, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdLessThanOrEqualTo(Integer value) {
            addCriterion("e_o_id <=", value, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdIn(List<Integer> values) {
            addCriterion("e_o_id in", values, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdNotIn(List<Integer> values) {
            addCriterion("e_o_id not in", values, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdBetween(Integer value1, Integer value2) {
            addCriterion("e_o_id between", value1, value2, "eOId");
            return (Criteria) this;
        }

        public Criteria andEOIdNotBetween(Integer value1, Integer value2) {
            addCriterion("e_o_id not between", value1, value2, "eOId");
            return (Criteria) this;
        }

        public Criteria andESIdIsNull() {
            addCriterion("e_s_id is null");
            return (Criteria) this;
        }

        public Criteria andESIdIsNotNull() {
            addCriterion("e_s_id is not null");
            return (Criteria) this;
        }

        public Criteria andESIdEqualTo(Integer value) {
            addCriterion("e_s_id =", value, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdNotEqualTo(Integer value) {
            addCriterion("e_s_id <>", value, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdGreaterThan(Integer value) {
            addCriterion("e_s_id >", value, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("e_s_id >=", value, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdLessThan(Integer value) {
            addCriterion("e_s_id <", value, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdLessThanOrEqualTo(Integer value) {
            addCriterion("e_s_id <=", value, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdIn(List<Integer> values) {
            addCriterion("e_s_id in", values, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdNotIn(List<Integer> values) {
            addCriterion("e_s_id not in", values, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdBetween(Integer value1, Integer value2) {
            addCriterion("e_s_id between", value1, value2, "eSId");
            return (Criteria) this;
        }

        public Criteria andESIdNotBetween(Integer value1, Integer value2) {
            addCriterion("e_s_id not between", value1, value2, "eSId");
            return (Criteria) this;
        }

        public Criteria andETIdIsNull() {
            addCriterion("e_t_id is null");
            return (Criteria) this;
        }

        public Criteria andETIdIsNotNull() {
            addCriterion("e_t_id is not null");
            return (Criteria) this;
        }

        public Criteria andETIdEqualTo(Integer value) {
            addCriterion("e_t_id =", value, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdNotEqualTo(Integer value) {
            addCriterion("e_t_id <>", value, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdGreaterThan(Integer value) {
            addCriterion("e_t_id >", value, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("e_t_id >=", value, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdLessThan(Integer value) {
            addCriterion("e_t_id <", value, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdLessThanOrEqualTo(Integer value) {
            addCriterion("e_t_id <=", value, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdIn(List<Integer> values) {
            addCriterion("e_t_id in", values, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdNotIn(List<Integer> values) {
            addCriterion("e_t_id not in", values, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdBetween(Integer value1, Integer value2) {
            addCriterion("e_t_id between", value1, value2, "eTId");
            return (Criteria) this;
        }

        public Criteria andETIdNotBetween(Integer value1, Integer value2) {
            addCriterion("e_t_id not between", value1, value2, "eTId");
            return (Criteria) this;
        }

        public Criteria andEStarIsNull() {
            addCriterion("e_star is null");
            return (Criteria) this;
        }

        public Criteria andEStarIsNotNull() {
            addCriterion("e_star is not null");
            return (Criteria) this;
        }

        public Criteria andEStarEqualTo(Double value) {
            addCriterion("e_star =", value, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarNotEqualTo(Double value) {
            addCriterion("e_star <>", value, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarGreaterThan(Double value) {
            addCriterion("e_star >", value, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarGreaterThanOrEqualTo(Double value) {
            addCriterion("e_star >=", value, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarLessThan(Double value) {
            addCriterion("e_star <", value, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarLessThanOrEqualTo(Double value) {
            addCriterion("e_star <=", value, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarIn(List<Double> values) {
            addCriterion("e_star in", values, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarNotIn(List<Double> values) {
            addCriterion("e_star not in", values, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarBetween(Double value1, Double value2) {
            addCriterion("e_star between", value1, value2, "eStar");
            return (Criteria) this;
        }

        public Criteria andEStarNotBetween(Double value1, Double value2) {
            addCriterion("e_star not between", value1, value2, "eStar");
            return (Criteria) this;
        }

        public Criteria andEMessageIsNull() {
            addCriterion("e_message is null");
            return (Criteria) this;
        }

        public Criteria andEMessageIsNotNull() {
            addCriterion("e_message is not null");
            return (Criteria) this;
        }

        public Criteria andEMessageEqualTo(String value) {
            addCriterion("e_message =", value, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageNotEqualTo(String value) {
            addCriterion("e_message <>", value, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageGreaterThan(String value) {
            addCriterion("e_message >", value, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageGreaterThanOrEqualTo(String value) {
            addCriterion("e_message >=", value, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageLessThan(String value) {
            addCriterion("e_message <", value, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageLessThanOrEqualTo(String value) {
            addCriterion("e_message <=", value, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageLike(String value) {
            addCriterion("e_message like", value, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageNotLike(String value) {
            addCriterion("e_message not like", value, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageIn(List<String> values) {
            addCriterion("e_message in", values, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageNotIn(List<String> values) {
            addCriterion("e_message not in", values, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageBetween(String value1, String value2) {
            addCriterion("e_message between", value1, value2, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEMessageNotBetween(String value1, String value2) {
            addCriterion("e_message not between", value1, value2, "eMessage");
            return (Criteria) this;
        }

        public Criteria andEFlagIsNull() {
            addCriterion("e_flag is null");
            return (Criteria) this;
        }

        public Criteria andEFlagIsNotNull() {
            addCriterion("e_flag is not null");
            return (Criteria) this;
        }

        public Criteria andEFlagEqualTo(Integer value) {
            addCriterion("e_flag =", value, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagNotEqualTo(Integer value) {
            addCriterion("e_flag <>", value, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagGreaterThan(Integer value) {
            addCriterion("e_flag >", value, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagGreaterThanOrEqualTo(Integer value) {
            addCriterion("e_flag >=", value, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagLessThan(Integer value) {
            addCriterion("e_flag <", value, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagLessThanOrEqualTo(Integer value) {
            addCriterion("e_flag <=", value, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagIn(List<Integer> values) {
            addCriterion("e_flag in", values, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagNotIn(List<Integer> values) {
            addCriterion("e_flag not in", values, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagBetween(Integer value1, Integer value2) {
            addCriterion("e_flag between", value1, value2, "eFlag");
            return (Criteria) this;
        }

        public Criteria andEFlagNotBetween(Integer value1, Integer value2) {
            addCriterion("e_flag not between", value1, value2, "eFlag");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}